package unet

import (
	"fmt"
	"strings"
	"cloud_worm/util/uexec"
)

/**
 @Description：检查ip是否通的，是否存在与网络中
 @Param:
 @Return：
            true           online
            false          offline
 */
func CheckIpOnline(ip string) (bool, error) {

	var ret bool
	var err error

	cmd := fmt.Sprintf("ping -c 2 -W 1 %s 2>/dev/null 1>&2", ip)
	result, status := uexec.ExecUnixCmd(cmd, 60)
	if status != 0 {
		// 命令执行失败
		err = fmt.Errorf("exec cmd error")
	} else if len(result) == 0 {
		// 结果为空，即ping成功，ip是通的
		ret = true
		err = nil
	} else if strings.HasPrefix(result, "exit status") {
		// ping失败，说明ip不通
		ret = false
		err = nil
	}

	return ret, err
}
